home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-29 | 10.7 KB | 349 lines |
- 10 'MOWHIP - mobile whip antenna - 13 JAN 94 rev. 05 JAN 97
- 20 IF EX$=""THEN EX$="EXIT"
- 30 PROG$="mowhip"
- 40 COMMON EX$,PROG$,U,UH
- 50 CLS:KEY OFF
- 60 COLOR 7,0,1
- 70 DIM S(9,7) 'single element data
- 80 DIM D(9,8) 'double element data
- 90 UL$=STRING$(80,205)
- 100 U1$="#####.##"
- 110 U2$="#####.###"
- 120 U3$="#####.####"
- 130 A$=STRING$(7,32)
- 140 B$=STRING$(19,".")
- 150 C$=STRING$(80,32)
- 160 PI=3.14159
- 170 GOTO 230
- 180 '
- 190 '.....erase line
- 200 LOCATE CSRLIN-1:PRINT C$;:LOCATE CSRLIN-1
- 210 RETURN
- 220 '
- 230 '.....start
- 240 CLS:F=0
- 250 COLOR 15,2
- 260 PRINT " MOBILE/MARITIME HF WHIP ANTENNAS";
- 270 PRINT TAB(57);"by George Murphy VE3ERP ";
- 280 COLOR 1,0:PRINT STRING$(80,223);
- 290 COLOR 7,0
- 300 X=17:LOCATE 3:GOSUB 560
- 310 X=42:LOCATE 3:GOSUB 430
- 320 PRINT UL$;
- 330 GOSUB 3120 'preface
- 340 COLOR 0,7:LOCATE 25,22
- 350 PRINT " Press 1 to continue or 0 to EXIT.... ";
- 360 COLOR 7,0
- 370 Z$=INKEY$:IF Z$=""THEN 370
- 380 IF Z$="0"THEN CLS:RUN EX$
- 390 IF Z$="1"THEN 690
- 400 GOTO 370
- 410 '
- 420 '.....diagrams
- 430 COLOR 0,7
- 440 LOCATE ,X:PRINT " DOUBLE ELEMENT "
- 450 LOCATE ,X:PRINT " VARPTRDEFDBL SPC( "
- 460 LOCATE ,X:PRINT " H2 OPENDEFSNGSOUNDupper element "
- 470 LOCATE ,X:PRINT " CLSDEFDBLVARPTRUSRCOLORDEFSNGSOUNDloading coil "
- 480 LOCATE ,X:PRINT " VARPTRDEFDBLCLSSPC(' "
- 490 LOCATE ,X:PRINT " H1 OPENDEFSNGSOUNDlower element "
- 500 LOCATE ,X:PRINT " CLSDEFDBL USRSOUND DEFSNGCOLORfeed "
- 510 LOCATE ,X:PRINT " VARPTRSOUND DEFSNG'point "
- 520 LOCATE ,X:PRINT " \MOTOR\DEFSNGSOUNDvehicle body "
- 530 COLOR 7,0
- 540 RETURN
- 550 '
- 560 COLOR 0,7
- 570 LOCATE ,X:PRINT " SINGLE ELEMENT "
- 580 LOCATE ,X:PRINT " VARPTRDEFDBL SPC( "
- 590 LOCATE ,X:PRINT " CALL OPEN "
- 600 LOCATE ,X:PRINT " H1 OPENDEFSNGSOUNDsingle element "
- 610 LOCATE ,X:PRINT " CALL OPEN "
- 620 LOCATE ,X:PRINT " CLSDEFDBLVARPTRUSRCOLORDEFSNGSOUNDloading coil "
- 630 LOCATE ,X:PRINT " CLSSOUNDMOTOR DEFSNGCOLORfeed "
- 640 LOCATE ,X:PRINT " VARPTRSOUND DEFSNG'point "
- 650 LOCATE ,X:PRINT " \MOTOR\DEFSNGSOUNDvehicle body "
- 660 COLOR 7,0
- 670 RETURN
- 680 '
- 690 '.....input data
- 700 VIEW PRINT 13 TO 24:CLS:VIEW PRINT:LOCATE 13
- 710 PRINT " Do you want to input data in (c)entimetres or (i)nches? (c/i)"
- 720 Z$=INKEY$:IF Z$=""THEN 720
- 730 IF Z$="c"THEN UM$="cm.":UM=2.54:GOTO 770
- 740 IF Z$="i"THEN UM$="in.":UM=1:GOTO 770
- 750 GOTO 720
- 760 '
- 770 GOSUB 190
- 780 PRINT " Do you want to design a (s)ingle or (d)ouble element whip? (s/d)"
- 790 I$=INKEY$:IF I$=""THEN 790
- 800 IF I$="s"OR I$="d"THEN X=2:GOTO 810 ELSE 790
- 810 IF I$="d"THEN Z$=" DOUBLE "ELSE Z$=" SINGLE "
- 820 CLS:IF I$="d"THEN GOSUB 430 ELSE GOSUB 560
- 830 LOCATE 1:PRINT Z$;"ELEMENT MOBILE or MARITIME WHIP"
- 840 '
- 850 LOCATE 11
- 860 INPUT "ENTER: Frequency of operation (1.8 - 30 MHz)........(MHz)";F
- 870 IF F<1.8 OR F>30 THEN GOSUB 190:GOTO 850
- 880 GOSUB 190
- 890 LOCATE 2,26:PRINT "Operating frequency........";USING U2$;F;
- 900 PRINT " MHz =";USING "#####.##";300/F;:PRINT " m."
- 910 '
- 920 LOCATE 11
- 930 PRINT" ENTER: Diameter of element H1...................("UM$;")";
- 940 INPUT DH1:DH1=DH1/UM
- 950 IF DH1=0 THEN GOSUB 190:GOTO 920
- 960 GOSUB 190
- 970 LOCATE 4,26:PRINT "Diameter of element H1.....";USING U1$;DH1*2.54;
- 980 PRINT " cm. =";USING "####.##";DH1;:PRINT " in."
- 990 IF I$="s"THEN 1190
- 1000 '
- 1010 LOCATE 11
- 1020 PRINT" ENTER: Diameter of element H2...................("UM$;")";
- 1030 INPUT DH2:DH2=DH2/UM
- 1040 IF DH1=0 THEN GOSUB 190:GOTO 1010
- 1050 GOSUB 190:LOCATE 6,26
- 1060 LOCATE 6,26:PRINT "Diameter of element H2.....";USING U1$;DH2*2.54;
- 1070 PRINT " cm. =";USING "####.##";DH2;:PRINT " in."
- 1080 '
- 1090 H=45 'max.elec.lgth in degrees
- 1100 LMAX=984*H/F/360*12 'max.length in inches
- 1110 LOCATE 11
- 1120 COLOR 0,7:PRINT " Maximum length H1+H2:";USING U1$;LMAX*2.54;
- 1130 PRINT " cm. =";USING U1$;LMAX;:PRINT " in. =";H;"elec.degrees "
- 1140 COLOR 7,0
- 1150 PRINT " ENTER: Your choice of total length H1+H2....(";UM$;")";:INPUT Z
- 1160 Z=Z/UM 'length in inches
- 1170 H=Z/12/984*F*360 'length in electrical degrees
- 1180 '
- 1190 '.....computation
- 1200 IF I$="s"THEN 1230
- 1210 IF I$="d"THEN 1900
- 1220 '
- 1230 '.....single element
- 1240 FOR Z=5 TO 45 STEP 5
- 1250 GOSUB 1780 'equations
- 1260 S(Z/5,1)=Z 'length in electrical degrees
- 1270 S(Z/5,2)=H1*2.54 'length in centimetres
- 1280 S(Z/5,3)=H1 'length in inches
- 1290 S(Z/5,4)=RR
- 1300 S(Z/5,5)=KM
- 1310 S(Z/5,6)=XL
- 1320 S(Z/5,7)=UH
- 1330 NEXT Z
- 1340 '
- 1350 '.....screen display
- 1360 LOCATE 10
- 1370 PRINT UL$;
- 1380 LOCATE CSRLIN-1,1:PRINT "ERR";:LOCATE ,30:PRINT"FN";:LOCATE ,54:PRINT "FN";:
- 1390 LOCATE ,68:PRINT "FN";:LOCATE ,(80):PRINT "OPTION";
- 1400 LOCATE CSRLIN-1,33:PRINT " TYPICAL VALUES "
- 1410 PRINT "CALLVARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND Length H1 SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR";TAB(30)"CALL Radiation";
- 1420 PRINT TAB(42)"CALL Antenna";TAB(54)"CALL Antenna";TAB(68)"CALL Loading";
- 1430 PRINT TAB(80)"CALL";
- 1440 PRINT "CALL degCALL cm. CALL in.";TAB(30)"CALL Resistance";
- 1450 PRINT TAB(42)"CALL Impedance";TAB(54)"CALL Reactance";TAB(68)"CALL Coil";
- 1460 PRINT TAB(80)"CALL";
- 1470 FOR Z=1 TO 9:FOR Y=1 TO 7
- 1480 IF Y=1 THEN U$="CALL ##<UNK! {00F8}>"
- 1490 IF Y=2 THEN U$="CALL#######.##"
- 1500 IF Y=3 THEN U$=" CALL#######.##"
- 1510 IF Y=4 OR Y=5 THEN U$=" CALL#####.## -"
- 1520 IF Y=6 THEN U$=" CALL-j#####.## -"
- 1530 IF Y=7 THEN U$=" CALL####.## >H"
- 1540 PRINT USING U$;S(Z,Y);
- 1550 NEXT Y:PRINT " CALL";
- 1560 NEXT Z
- 1570 GOSUB 3360 'hard copy
- 1580 '
- 1590 '.....select an antenna
- 1600 LOCATE 23
- 1610 PRINT " ENTER: Your choice of length H1.....(";UM$;")";:INPUT L:L=L/UM
- 1620 Z=L/12/984*F*360 'length in degrees
- 1630 LOCATE 5,26:PRINT SPC(54); 'erase H1 length display
- 1640 VIEW PRINT 11 TO 24:CLS:VIEW PRINT:LOCATE 11
- 1650 GOSUB 1780 'solve equations
- 1660 Z1=Z:GOSUB 2680 'screen printout
- 1670 GOSUB 3360 'hard copy
- 1680 LOCATE 25,1:PRINT C$;:LOCATE 23:COLOR 0,7
- 1690 '
- 1700 PRINT " Do you want to try another? (y/n) "
- 1710 COLOR 7,0
- 1720 Z$=INKEY$:IF Z$=""THEN 1720
- 1730 IF Z$="n"THEN GOSUB 190:GOTO 3000
- 1740 IF Z$="y"THEN GOSUB 190:GOTO 1590
- 1750 GOTO 1720
- 1760 END
- 1770 '
- 1780 '.....single element equations
- 1790 I=1 '1 ampere base current
- 1800 H1=984*Z/(F*360)*12 'length of H1 in inches
- 1810 A=Z/2*I 'area in degree-amperes
- 1820 K=Z^2/(312*A^2) 'K=.0128
- 1830 RR=K*A^2 'radiation resistance in ohms
- 1840 KM=60*(LOG(2*H1/(DH1/2))-1) 'mean characteristic impedance
- 1850 DR=Z*PI/180 'elec. length in radians
- 1860 XL=KM*(1/TAN(DR)) 'inductive reactance required
- 1870 UH=XL/(2*PI*F) 'inductor value in >H
- 1880 RETURN
- 1890 '
- 1900 '.....double element
- 1910 VIEW PRINT 10 TO 24:CLS:VIEW PRINT:LOCATE 10
- 1920 PRINT UL$;
- 1930 LOCATE CSRLIN-1,1:PRINT "ERR";:LOCATE ,30:PRINT"FN";:LOCATE ,59:PRINT "FN";:
- 1940 LOCATE ,68:PRINT "FN";:LOCATE ,(80):PRINT "OPTION";
- 1950 LOCATE CSRLIN-1,33:PRINT " TYPICAL VALUES "
- 1960 PRINT "CALLVARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND Length H1 SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR";TAB(30);
- 1970 PRINT "CALLVARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND Length H2 SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR";
- 1980 PRINT TAB(59);"CALLRadiat'nCALL Loading";
- 1990 PRINT TAB(80)"CALL";
- 2000 PRINT "CALL deg CALL cm. CALL in.";TAB(30);
- 2010 PRINT "CALL deg CALL cm. CALL in.";
- 2020 PRINT TAB(59)"CALL Resis.";TAB(68)"CALL Coil";
- 2030 PRINT TAB(80)"CALL";
- 2040 FOR Z=1 TO 9
- 2050 GOSUB 2510 'solve equations
- 2060 D(Z,1)=H1 'H1 in degrees
- 2070 D(Z,3)=H1N 'H1 in inches
- 2080 D(Z,2)=H1N*2.54 'H1 in cm.
- 2090 D(Z,4)=H2 'H2 in degrees
- 2100 D(Z,6)=H2N 'H2 in inches
- 2110 D(Z,5)=H2N*2.54 'H2 in cm.
- 2120 D(Z,7)=RR
- 2130 D(Z,8)=UH
- 2140 NEXT Z
- 2150 '
- 2160 '.....screen display
- 2170 LOCATE 9,26:PRINT "Sum of lengths H1 + H2.....";USING U1$;(H1N+H2N)*2.54;
- 2180 PRINT " cm. =";USING "####.##";H1N+H2N;:PRINT " in."
- 2190 LOCATE 13
- 2200 FOR Z=1 TO 9:FOR Y=1 TO 8
- 2210 IF Y=1 OR Y=4 THEN U$="CALL###.##<UNK! {00F8}> "
- 2220 IF Y=2 OR Y=3 OR Y=5 OR Y=6 THEN U$="CALL#####.## "
- 2230 IF Y=7 THEN U$="CALL##.## - "
- 2240 IF Y=8 THEN U$="CALL####.## >h "
- 2250 PRINT USING U$;D(Z,Y);
- 2260 NEXT Y:PRINT "CALL";
- 2270 NEXT Z
- 2280 GOSUB 3360
- 2290 '
- 2300 '.....select an antenna
- 2310 LOCATE 23
- 2320 PRINT " ENTER: Your choice of length H1.....(";UM$;")";:INPUT Z:Z=Z/UM
- 2330 H1=Z/12/984*F*360 'length in electrical degrees
- 2340 LOCATE 5,26:PRINT SPC(54); 'erase H1 length display
- 2350 LOCATE 7,26:PRINT SPC(54); 'erase H2 length display
- 2360 LOCATE 9,26:PRINT SPC(54); 'erase H1+h2 length display
- 2370 VIEW PRINT 11 TO 24:CLS:VIEW PRINT:LOCATE 11
- 2380 GOSUB 2540 'solve equations
- 2390 Z1=H1:Z2=H2:GOSUB 2680 'screen printout
- 2400 GOSUB 3360 'hard copy
- 2410 LOCATE 25,1:PRINT C$;:LOCATE 23:COLOR 0,7
- 2420 '
- 2430 PRINT " Do you want to try another? (y/n) "
- 2440 COLOR 7,0
- 2450 Z$=INKEY$:IF Z$=""THEN 2450
- 2460 IF Z$="n"THEN GOSUB 190:GOTO 3000
- 2470 IF Z$="y"THEN GOSUB 190:GOTO 2300
- 2480 GOTO 1720
- 2490 END
- 2500 '
- 2510 '.....double element equations
- 2520 H1=H*Z/10 'H1 electrical lengths in degrees
- 2530 '
- 2540 H2=H-H1 'H2 electrical lengths in degrees
- 2550 H1N=984*H1/(F*360)*12 'H1 length in inches
- 2560 H2N=984*H2/(F*360)*12 'H2 length in inches
- 2570 DR1=H1*PI/180 'H1 elec. length in radians
- 2580 DR2=H2*PI/180 'H2 elec. length in radians
- 2590 A=0.5*(H1*(1+COS(DR1))+H2*COS(DR1)) 'area in degree-amperes
- 2600 K=0.0128 'K=.0128
- 2610 RR=K*A^2 'radiation resistance in ohms
- 2620 KM1=60*(LOG(2*H1N/(DH1/2))-1) 'H1 mean characteristic impedance
- 2630 KM2=60*(LOG(2*H2N/(DH2/2))-1) 'H2 mean characteristic impedance
- 2640 XL=KM2/TAN(DR2)-KM1*TAN(DR1) 'inductive reactance required
- 2650 UH=XL/(2*PI*F) 'inductor value in >H
- 2660 RETURN
- 2670 '
- 2680 '.....specification printout
- 2690 VIEW PRINT 10 TO 24:CLS:VIEW PRINT:LOCATE 10
- 2700 PRINT UL$;
- 2710 PRINT " Length H1 (electrical degrees)....H1=";USING U2$;Z1;:PRINT "<UNK! {00F8}>"
- 2720 IF I$="s"THEN 2740
- 2730 PRINT " Length H2 (electrical degrees)....H2=";USING U2$;Z2;:PRINT "<UNK! {00F8}>"
- 2740 PRINT " Degree-ampere area.................A=";USING U3$;A
- 2750 PRINT " K constant.........................K=";USING U3$;K
- 2760 PRINT " Radiation resistance..............RR=";USING U2$;RR;:PRINT " -"
- 2770 IF I$="s"THEN 2810
- 2780 PRINT " H1 characteristic impedance......Km1=";USING U2$;KM1;:PRINT " -"
- 2790 PRINT " H2 characteristic impedance......Km2=";USING U2$;KM2;:PRINT " -"
- 2800 GOTO 2820
- 2810 PRINT " H1 characteristic impedance.......Km=";USING U2$;KM;:PRINT " -"
- 2820 PRINT " Capacitive reactance..............XL=";USING U2$;XL;:PRINT " -"
- 2830 PRINT " Loading coil inductance.............=";USING U2$;UH;:PRINT " >H"
- 2840 RC1=XL/50:RC2=XL/300:RC3=XL/450
- 2850 PRINT " Coil loss resistance: Q50 coil....RC=";USING U2$;RC1;:PRINT " -"
- 2860 PRINT " : Q300 coil...RC=";USING U2$;RC2;:PRINT " -"
- 2870 PRINT " : Q450 coil...RC=";USING U2$;RC3;:PRINT " -"
- 2880 IF I$="d"THEN 2920
- 2890 LOCATE 5,26:PRINT "Length of element H1.......";USING U1$;H1*2.54;
- 2900 PRINT " cm. =";USING "####.##";H1;:PRINT " in."
- 2910 GOTO 2980
- 2920 LOCATE 5,26:PRINT "Length of element H1.......";USING U1$;H1N*2.54;
- 2930 PRINT " cm. =";USING "####.##";H1N;:PRINT " in."
- 2940 LOCATE 7,26:PRINT "Length of element H2.......";USING U1$;H2N*2.54;
- 2950 PRINT " cm. =";USING "####.##";H2N;:PRINT " in."
- 2960 LOCATE 9,26:PRINT "Sum of lengths H1 + H2.....";USING U1$;(H1N+H2N)*2.54;
- 2970 PRINT " cm. =";USING "####.##";H1N+H2N;:PRINT " in."
- 2980 RETURN
- 2990 '
- 3000 '.....end
- 3010 COLOR 0,7
- 3020 PRINT " Do you want to design this coil? (y/n) "
- 3030 COLOR 7,0
- 3040 Z$=INKEY$:IF Z$=""THEN 3040
- 3050 IF Z$="n"THEN GOSUB 190:GOTO 3090
- 3060 IF Z$="y"THEN CLS:U=UH:CHAIN"coildsgn"
- 3070 GOTO 3040
- 3080 GOSUB 3360
- 3090 GOTO 230 'start
- 3100 END
- 3110 '
- 3120 '.....preface
- 3130 TB=7
- 3140 PRINT TAB(TB);
- 3150 PRINT "This program purposely omits end effect calculation to ensure that"
- 3160 PRINT TAB(TB);
- 3170 PRINT "an antenna is electrically overlength. This is so that resonance at"
- 3180 PRINT TAB(TB);
- 3190 PRINT "the design frequency can be obtained easily by removing a turn or"
- 3200 PRINT TAB(TB);
- 3210 PRINT "two from the loading coil."
- 3220 PRINT
- 3230 PRINT TAB(TB);
- 3240 PRINT "Optimum loading coil Q is attained when the loading coil diameter"
- 3250 PRINT TAB(TB);
- 3260 PRINT "is at or near twice its length. Diameter of loading coil conductor"
- 3270 PRINT TAB(TB);
- 3280 PRINT "(wire or tubing) should be as large as practicable. Loading coil"
- 3290 PRINT TAB(TB);
- 3300 PRINT "turns should be removed, NOT shorted, for tuning purposes."
- 3310 PRINT
- 3320 PRINT TAB(TB);
- 3330 PRINT "(Ref. THE ARRL ANTENNA BOOK, 17th Edition, pages 16-5 TO 16-11)"
- 3340 RETURN
- 3350 '
- 3360 'HARDCOPY
- 3370 GOSUB 3480:LOCATE 25,2:COLOR 14,6
- 3380 PRINT " Press 1 to print screen, 2 to print screen & ";
- 3390 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 3400 Z$=INKEY$:IF Z$="3"THEN GOSUB 3480:RETURN
- 3410 IF Z$="1"OR Z$="2"THEN GOSUB 3480:GOTO 3430
- 3420 GOTO 3400
- 3430 FOR QX=1 TO 24:FOR QY=1 TO 80
- 3440 LPRINT CHR$(SCREEN(QX,QY));
- 3450 NEXT QY:NEXT QX
- 3460 IF Z$="2"THEN LPRINT CHR$(12)
- 3470 GOTO 3370
- 3480 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-